/// <license>TUSTENA PUBLIC LICENSE v1.0</license>
/// <copyright>
/// Portions Copyright (c) 2003-2006 Digita S.r.l. All Rights Reserved.
///
/// Tustena CRM is a trademark of:
/// Digita S.r.l.
/// Viale Enrico Fermi 14/z
/// 31011 Asolo (Italy)
/// Tel. +39-0423-951251
/// Mail. info@digita.it
///
/// This file contains Original Code and/or Modifications of Original Code
/// as defined in and that are subject to the Tustena Public Source License
/// Version 1.0 (the 'License'). You may not use this file except in
/// compliance with the License. Please obtain a copy of the License at
/// http://www.tustena.com/TPL/ and read it before using this
// file.
///
/// The Original Code and all software distributed under the License are
/// distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
/// EXPRESS OR IMPLIED, AND DIGITA S.R.L. HEREBY DISCLAIMS ALL SUCH WARRANTIES,
/// INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
/// Please see the License for the specific language governing rights and
/// limitations under the License.
///
/// YOU MAY NOT REMOVE OR ALTER THIS COPYRIGHT NOTICE!
/// </copyright>

using System;
using System.IO;
using System.Web;
using System.Web.UI;
using Digita.Tustena.Base;
using Digita.Tustena.Core;

namespace Digita.Tustena
{
	public partial class imageRepath : Page
	{
		private UserConfig UC = new UserConfig();

		protected void Page_Load(object sender, EventArgs e)
		{
			UC = (UserConfig) HttpContext.Current.Session["userconfig"];

string pathTemplate;
			pathTemplate = Path.Combine(ConfigSettings.DataStoragePath,FilterNoLetters(Request.PathInfo));

			if ( Request.PathInfo != null && Request.PathInfo.Length > 0 && File.Exists(pathTemplate))
			{
				Response.ContentType = StaticFunctions.ContentTypeMatch(Request.PathInfo);
				Response.WriteFile(pathTemplate);
			}
			else
			{
				Response.StatusCode=404;
				Response.StatusDescription="File not found, are you trying a hack?";
				Response.End();
			}

		}

		private string FilterNoLetters(string s)
		{
			for(int i=0;i<s.Length;i++)
			{
				if(Char.IsLetter(s, i))
				{
					s=s.Substring(i);
					break;
				}
			}
			if(s.IndexOfAny(new char[]{':','%'})>-1)
				return String.Empty;
			return s;
		}

		#region Codice generato da Progettazione Web Form
		override protected void OnInit(EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}

		private void InitializeComponent()
		{
			this.Load += new EventHandler(this.Page_Load);
		}
		#endregion
	}
}
